# def test2():
# 能够直接使用的函数：内置函数
# import builtins
# print(dir(builtins)) # dir() builtins里面的属性和方法

# 内置函数：高级函数

# zip()拉链函数(关联)：多个可迭代对象的元素一一对应起来打包成一个元组格式的数据
# li = [1,2,3]
# li2 = [4,5,6]
# li3 = [7,8,9,10,11]
# print(zip(li,li2))
# # 减少内存返回可迭代对象 --需要转换一下
# print(list(zip(li,li2,li3)))
# 如果可迭代对象长度不一致的话按照最短的进行返回

# map()映射函数：相当于把可迭代对象的每一个元素拿出来执行function返回新元素，拿到最终对象
# 把列表进行平方的操作，拿到平方之后的新元素
# def func(x):
#     return x*x  # 必须有return
# li = [1,3,5,7,9]
# print(list(map(func,li))) # [1, 9, 25, 49, 81]
# # 匿名函数写法
# print(list(map(lambda x:x*x,li)))


# reduce()：把可迭代对象里面的每一个元素进行操作返回一个结果(第一个元素和第二个元素)
# 2*4*6*8*10结果进行返回
# from functools import reduce  # 要使用reduce()需要先导入
# li = [2,4,6,8,10]
# def func(x,y):
#     return x*y # 第一个元素和第二个元素进行相乘结果返回继续和下一个元素进行相乘
# print(reduce(func,li))
# # 匿名函数的写法
# print(reduce(lambda x,y:x*y,li))

# filter()：通过函数条件过滤掉不符合条件的可迭代对象的元素(每一个元素拿出来进行比较)
# 列表里面大于60的数据拿出来
# li = [23,55,80,94,32]
# def func(x):
#     return x>60
# print(list(filter(func,li)))  # [80, 94]
# # 匿名函数写法
# print(list(filter(lambda x:x>60,li))) # 剩下的就是符合条件的数据


# eval()将字符串数据转换成原本格式的数据
# ex = eval(input("请输入表达式："))
# print(ex)

print(eval("123"))
st_li = "[10,20,30]"
print(type(st_li))
print(type(eval(st_li)))




